<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // - 求字符串数组中每一项的长度

    var arr = ['a,b,c', 'd,e,f,g', 'h,i,j,k,l', '周六'];
    var new_arr = [];
    for (var v of arr) {
      new_arr.push(v.length);
    }
    console.log(new_arr);


    // - 将字符串数组用|或其他符号分割

    var arr02 = ['a,b,c', 'd,e,f,g', 'h,i,j,k,l', '周六'];
    var str = '';
    for (var i in arr02) {
      var str_unit = '';
      if (i < arr.length - 1) str_unit = '|';
      str += arr[i] + str_unit;
      // arr_str += arr[i] + (i == arr.length - 1 ? '' : '|');   
    }
    console.log(str);

    // - 有一个从小到大排好序的数组。现输入一个数，要求按原来的规律将它插入数组中

    var arr = [21, 23, 47, 65, 79, 83, 93];
    var p = prompt('请输入一个数：');
    // console.log(arr);
    var nowVal, _index;
    if (p < arr[0]) {
      arr.push(p);
    } else {
      arr.push(p);
      for (var n = 7; n < arr.length; n++) {
        // 当前值保存
        nowVal = arr[n];
        // 上一个元素的下标值
        _index = n - 1;
        // 当前值跟前面每个值作比较
        // 直到找到比前面数大的位置
        while (_index >= 0 && nowVal < arr[_index]) {
          arr[_index + 1] = arr[_index];
          _index--;
        }
        // 找到前面的数的下标值
        // 下标值 + 1 就是这个数的位置
        // 把这个值放到当前的位置
        arr[_index + 1] = nowVal;
      }
    }
    console.log(arr);

    /* - 猴子选大王
     * - 要求一群猴子排成一圈，按“1,2,……,n”依次编号。然后从第1只开始数，数到第m只，把它踢出圈，
     其后的猴子再从1开始数，数到第m只，再把它踢出去……，如此不停的进行下去，
     直到最后只剩下一只猴子为止，那只猴子就是我们要找的大王。
      * - 假设n（猴子总数）：8、m（踢出圈的）：3
      * - 第一圈：踢出的猴子编号为3、6，位置编号为3、6。
      *	- 第二圈：踢出的猴子编号为1、5，位置编号为9、12。
      *	- 第三圈：踢出的猴子编号为2、8，位置编号为15、18。
      *	- 第四圈：无。
      *	- 第五圈：踢出的猴子编号为4，位置编号为21。
      *	- 得出猴王编号：7。
      *	- 通过prompt()接收用户传递的猴子总数n和踢出的第m只猴子。
     * - 利用数组保存所有猴子的编号（1~n）。 
     * - 设置一个变量i，记录每次参与游戏（报数）的猴子位置。
     * - 通过while循环，只要猴子数组内元素个数大于1，就继续循环。
    */

    var monkey = prompt('请输入猴子数量：');
    var del_monkey = prompt('请输入您想要踢除的猴子位置');
    var arr = [];
    for (var i = 1; i <= monkey.length; i++) {
      arr.push(i);
    }
    var num = 1;
    var _one;
    while (arr.length > 1) {
      _one = arr.shift();
      if (num % del_monkey != 0) {
        arr.push(_one);
      }
      num++;
    }
    console.log('猴王编号为：' + arr[0]);


    /* - 省份城市的三级联动
     * - 在Web开发中，地区联动是很常见的功能。
     * - 例如，购物、外卖等需要选择填写的送货地址。
     * - 其中，省份城市的三级联动则是最基础的功能。
     * - 接下来利用数组保存相关的省份、城市和地区的信息。
     * - 一维数组provinces保存省、自治区和直辖市。
     * - 二维数组cities保存对应省、自治区和直辖市下的所有城市，存储时要保证cities[index]中index值与对应provinces中元素的下标索引相同。
     * - 同理，利用三维数组保存每个城市下的区域的所有区域。
    */


  </script>
</body>

</html>